package cn.edu.ncut.cs.springboot.petmanagementsystem.service;

import cn.edu.ncut.cs.springboot.petmanagementsystem.common.PageResult;
import cn.edu.ncut.cs.springboot.petmanagementsystem.pojo.Message;

/**
 * 消息通知服务接口
 */
public interface MessageService {

    /**
     * 获取用户消息列表
     *
     * @param userId 用户ID
     * @param page 页码
     * @param pageSize 每页大小
     * @return 消息列表分页结果
     */
    PageResult<Message> getMessageList(Long userId, Integer page, Integer pageSize);

    /**
     * 标记消息已读
     *
     * @param id 消息ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean markAsRead(Long id, Long userId);

    /**
     * 删除消息
     *
     * @param id 消息ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean deleteMessage(Long id, Long userId);

    /**
     * 获取未读消息数量
     *
     * @param userId 用户ID
     * @return 未读消息数量
     */
    Integer getUnreadCount(Long userId);
}
